#!/bin/bash

. /start-utils

if [ $TYPE = "FEED-THE-BEAST" ]; then
  worldDest=$FTB_BASE_DIR/$LEVEL
else
  worldDest=/data/$LEVEL
fi

# If no world exists and a URL for a world is supplied, download it and unpack
if [[ "$WORLD" ]] && [ ! -d "$worldDest" ]; then
case "X$WORLD" in
  X[Hh][Tt][Tt][Pp]*)
    log "Downloading world from $WORLD"
    curl -sSL -o - "$WORLD" > /data/world.zip
    log "Unzipping world"
    unzip -o -q /data/world.zip
    rm -f /data/world.zip
    if [ ! -d $worldDest ]; then
      log World directory not found
      for i in /data/*/level.dat; do
        if [ -f "$i" ]; then
          d=`dirname "$i"`
          log Renaming world directory from $d
          mv -f "$d" $worldDest
        fi
      done
    fi
    if [ "$TYPE" = "SPIGOT" ]; then
      # Reorganise if a Spigot server
      log "Moving End and Nether maps to Spigot location"
      [ -d "$worldDest/DIM1" ] && mv -f "$worldDest/DIM1" "/data/${LEVEL}_the_end"
      [ -d "$worldDest/DIM-1" ] && mv -f "$worldDest/DIM-1" "/data/${LEVEL}_nether"
    fi
    ;;
  *)
    if [[ -d $WORLD ]]; then
      if [[ ! -d $worldDest ]]; then
        log "Cloning world directory from $WORLD ..."
        cp -r $WORLD $worldDest
      else
        log "Skipping clone from $WORLD since $worldDest exists"
      fi
    else
      log "Invalid URL given for world: Must be HTTP or HTTPS and a ZIP file"
    fi
    ;;
esac
fi

exec /start-finalSetup02Modpack $@
